<p>不同类型之间的比较始终返回false。比如：</p>
<ul>
  <li>比较对象为null </li>
  <li>比较对象与原生类型</li>
  <li>比较完全不相关的类</li>
  <li>比较不相关的<code>final class</code> 和<code>interface</code>  </li>
  <li>比较数组与非数组</li>
  <li>比较两个数组</li>
</ul><p>特别是在数组的情况下，由于数组不会覆盖<code> Object.equals()</code> ，因此在两个数组上调用<code> equals </code> 比较的是它们的内存地址。
  这意味着<code> array1.equals(array2)</code> 等效于<code> array1 == array2 </code> 。</p>
<p>如果想比较两个数组的大小和内容是否相等，可以使用<code> Arrays.equals(array1，array2)</code> </p>
<h2>不规范代码示例</h2>

<pre>
interface KitchenTool { ... };
interface Plant {...}

public final class Spatula implements KitchenTool { ... }
public class Tree implements Plant { ...}
//...

Spatula spatula = new Spatula();
KitchenTool tool = spatula;
KitchenTool [] tools = {tool};

Tree tree = new Tree();
Plant plant = tree;
Tree [] trees = {tree};


if (spatula.equals(tree)) { // 不规范; 无关类
  // ...
}
else if (spatula.equals(plant)) { // 不规范；不相关的最终类和接口
  // ...
}
else if (tool.equals(tools)) { // 不合规；数组与非数组
  // ...
}
else if (trees.equals(tools)) {  // 不合规；不兼容的数组
  // ...
}
else if (tree.equals(null)) {  // 不合规
  // ...
}
</pre>

